package com.ic.dao;

import com.ic.base.BaseDao;
import com.ic.entity.Subject;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

/**
 * 物品科目DAO层类
 */
@Repository
public interface SubjectDao extends BaseDao<Subject> {
	/**
	 * 根据查询条件获取物品科目数量
	 *
	 * @param map 包含物品科目名称
	 * @return 物品科目数量
	 */
	public Integer selectCount(Map map);

	/**
	 * 根据查询条件获取物品科目信息
	 *
	 * @param map 包含分页信息(开始位置，每页记录数)和物品科目名称
	 * @return 物品科目信息
	 */
	public List showSubjectList(Map map);

	/**
	 * 检查物品科目名称是否已存在
	 *
	 * @param subject 物品科目
	 * @return 符合要求的物品科目名称数量
	 */
	public Integer checkSubjectName(Subject subject);

	/**
	 * 根据物品科目ID更改物品科目状态
	 *
	 * @param map 包含物品科目ID集合和状态
	 * @return 影响的数据数量
	 */
	public Integer updateState(Map map);

	/**
	 * 根据物品科目ID查询物品科目信息
	 *
	 * @param id 物品科目ID
	 * @return 物品科目
	 */
	public List showSubject(String id);

	/**
	 * 根据物品科目状态查询满足条件的信息
	 *
	 * @param state 物品科目状态
	 * @return 物品科目
	 */
	public List selectSubject(String state);
}